From 99e08d60784a88e57197761a262862668053f1dd Mon Sep 17 00:00:00 2001 From: "cl349@firebug.cl.cam.ac.uk" Date: Thu, 2 Mar 2006 15:33:47 +0000 Subject: [PATCH] linux: clean up setup_arch_post.h - machine_specific_memory_setup() was unused on x86-64 - machine_specific_modify_cpu_capabilities() must not be __init (for CPU hotplug) - machine_specific_modify_cpu_capabilities() should be called in similar ways on 32- and 64-bits From: Jan Beulich Signed-off-by: Christian Limpach --- .../arch/x86_64/kernel/setup-xen.c | 4 ++++ .../asm-i386/mach-xen/setup_arch_post.h | 2 +- .../asm-x86_64/mach-xen/setup_arch_post.h | 20 ++----------------- 3 files changed, 7 insertions(+), 19 deletions(-) diff --git a/linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c b/linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c index f6b3471041..7827ee089c 100644 --- a/linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c +++ b/linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c @@ -82,6 +82,8 @@ extern unsigned long start_pfn; extern struct edid_info edid_info; +extern void machine_specific_modify_cpu_capabilities(struct cpuinfo_x86 *c); + shared_info_t *HYPERVISOR_shared_info = (shared_info_t *)empty_zero_page; EXPORT_SYMBOL(HYPERVISOR_shared_info); @@ -1405,6 +1407,8 @@ void __cpuinit identify_cpu(struct cpuinfo_x86 *c) select_idle_routine(c); detect_ht(c); + machine_specific_modify_cpu_capabilities(c); + /* * On SMP, boot_cpu_data holds the common feature set between * all CPUs; so make sure that we indicate which features are diff --git a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/setup_arch_post.h b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/setup_arch_post.h index 8584cb3c05..49c3f2a641 100644 --- a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/setup_arch_post.h +++ b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/setup_arch_post.h @@ -16,7 +16,7 @@ static char * __init machine_specific_memory_setup(void) return "Xen"; } -void __init machine_specific_modify_cpu_capabilities(struct cpuinfo_x86 *c) +void __devinit machine_specific_modify_cpu_capabilities(struct cpuinfo_x86 *c) { clear_bit(X86_FEATURE_VME, c->x86_capability); clear_bit(X86_FEATURE_DE, c->x86_capability); diff --git a/linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/setup_arch_post.h b/linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/setup_arch_post.h index 84186bbe96..b90a871735 100644 --- a/linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/setup_arch_post.h +++ b/linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/setup_arch_post.h @@ -1,28 +1,12 @@ /** - * machine_specific_memory_setup - Hook for machine specific memory setup. + * machine_specific_* - Hooks for machine specific setup. * * Description: * This is included late in kernel/setup.c so that it can make * use of all of the static functions. **/ -static char * __init machine_specific_memory_setup(void) -{ - char *who; - unsigned long start_pfn, max_pfn; - - who = "Xen"; - - start_pfn = 0; - max_pfn = xen_start_info->nr_pages; - - e820.nr_map = 0; - add_memory_region(PFN_PHYS(start_pfn), PFN_PHYS(max_pfn) - PFN_PHYS(start_pfn), E820_RAM); - - return who; -} - -void __init machine_specific_modify_cpu_capabilities(struct cpuinfo_x86 *c) +void __cpuinit machine_specific_modify_cpu_capabilities(struct cpuinfo_x86 *c) { clear_bit(X86_FEATURE_VME, c->x86_capability); clear_bit(X86_FEATURE_DE, c->x86_capability); -- 2.30.2